package com.iwhalecloud.citybrain.flow.platform.manager.application.service;

import com.iwhalecloud.citybrain.flow.platform.manager.common.ResponseResult;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.userentity.GroupInfo;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.userentity.UserInfo;

import java.util.List;

/**
　　* @description: 用户群组服务
　　* @author shenrm
　　* @date 2021/10/27 14:59
　　*/
public interface UserGroupService {

    /**
     * 获取所有的用户群组列表
     *
     * @return
     */
    List<GroupInfo> getUserGroupList();

    /**
     * 根据用户userId查询获取该用户所属的用户自定义群组
     *
     * @param userId
     * @return
     */
    List<GroupInfo> getGroupInfoByUserId(String userId);

    /**
     * 根据用户组ID获取对应关联的用户列表信息
     *
     * @param groupCode 用户组编码
     * @param groupCodes 用户组编码集合
     * @return
     */
    List<UserInfo> getUserListByGroupId(String groupCode, List<Long> groupCodes);

    /**
     * 分页查询用户组列表
     * @param groupName
     * @param pageNo
     * @param pageSize
     * @return
     */
    ResponseResult getUserGroupPageList(String groupName, Integer pageNo, Integer pageSize);

    /**
     * 用户组ID
     * @param groupCode
     * @return
     */
    GroupInfo getGroupDetail(Long groupCode);

    /**
     * 根据用户组ID或编码获取用户组明细信息
     *
     * @param groupId
     * @param groupCode
     * @param isDeleted
     * @return
     */
    GroupInfo getGroupDetailByGroupCode(String groupId, String groupCode, String isDeleted);
}
